﻿using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;

namespace ConfigMeister
{
    class Material
    {
        private string _name;

        private Color _diffuse;
        private Color _ambient;
        private Color _specular;

        private string _texture;

        private double _specularIntesity;
        private int _glossiness;
        private bool _soften;
        private bool _twoSided;
        private double _shadedSurfBlacknessCoef;
        private int _shadingAlgorithm;

        public Material()
        {
            _name = MaterialBucket.GenericName;
            _diffuse = Color.Black;
            _ambient = Color.Black;
            _specular = Color.White;

            _texture = "";

            _specularIntesity = 0;
            _glossiness = 0;
            _soften = false;
            _twoSided = false;
            _shadedSurfBlacknessCoef = 1;
            _shadingAlgorithm = 0;
        }

        public string Name
        {
            get { return _name; }
            set { _name = value; }
        }

        public Color Diffuse
        {
            get { return _diffuse; }
            set { _diffuse = value; }
        }

        public Color Ambient
        {
            get { return _ambient; }
            set { _ambient = value; }
        }

        public Color Specular
        {
            get { return _specular; }
            set { _specular = value; }
        }

        public string Texture
        {
            get { return _texture; }
            set { _texture = value; }
        }

        public double specularIntesity
        {
            get { return _specularIntesity; }
            set { _specularIntesity = value; }
        }

        public int Glossiness
        {
            get { return _glossiness; }
            set { _glossiness = value; }
        }

        public bool Soften
        {
            get { return _soften; }
            set { _soften = value; }
        }

        public bool TwoSided
        {
            get { return _twoSided; }
            set { _twoSided = value; }
        }

        public double ShadedSurfBlacknessCoef
        {
            get { return _shadedSurfBlacknessCoef; }
            set { _shadedSurfBlacknessCoef = value; }
        }

        public int ShadingAlgorithm
        {
            get { return _shadingAlgorithm; }
            set { _shadingAlgorithm = value; }
        }
    }
}
